﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace LABORATORIOCAPS2LIBRES.Analisis
{
    public partial class FrmBuscarProf : Form
    {
        LABORATORIOEntities context = new LABORATORIOEntities();
        public Profesionales profselec;
        const string apellido = "Apellido";
        const string localidad = "Localidad";
        const string establecimiento = "Establecimiento";

        public FrmBuscarProf()
        {
            InitializeComponent();
            CargarGrilla();
            CargarComboBusqueda();
            txbBusqueda.Focus();
         }

        private void CargarComboBusqueda()
        {
            cmbTipoBusqueda.Items.Add(apellido);
            cmbTipoBusqueda.Items.Add(localidad);
            cmbTipoBusqueda.Items.Add(establecimiento);
            cmbTipoBusqueda.SelectedIndex = 0;
        }

        private void CargarGrilla()
        {
            dgvBuscarProf.DataSource = context.Profesionales;
            dgvBuscarProf.Columns["idprofesional"].Visible = false;
            dgvBuscarProf.Columns["Apellidoprof"].Visible = true;
            dgvBuscarProf.Columns["Nombreprof"].Visible = true;
            dgvBuscarProf.Columns["DNIprof"].Visible = true;
            dgvBuscarProf.Columns["Domicilioprof"].Visible = false;
            dgvBuscarProf.Columns["Telefonoprof"].Visible = false;
            dgvBuscarProf.Columns["Especialidadprof"].Visible = true;
            dgvBuscarProf.Columns["localidadprof"].Visible = true;
            dgvBuscarProf.Columns["Establecimiento"].Visible = true;
            dgvBuscarProf.Columns["Protocolo"].Visible = false;


            dgvBuscarProf.Columns["Apellidoprof"].HeaderText = "Apellido";
            dgvBuscarProf.Columns["Nombreprof"].HeaderText = "Nombre";
            dgvBuscarProf.Columns["Especialidadprof"].HeaderText = "Especialidad";
            dgvBuscarProf.Columns["localidadprof"].HeaderText = "Localidad";
            dgvBuscarProf.Columns["Establecimiento"].HeaderText = "Establecimiento";
            dgvBuscarProf.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvBuscarProf.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvBuscarProf.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        private void btnBuscar_Click(object sender, EventArgs e)
        {
            Buscar();
        }

        void Buscar()
        {
            if (txbBusqueda.Text == "")
            {
                CargarGrilla();
            }
            else
            {
                if (txbBusqueda.Text.Length > 2)
                {
                    try
                    {
                        string cadena = txbBusqueda.Text;
                        
                        if (cmbTipoBusqueda.SelectedItem == apellido)
                        {
                            var busqueda = from prof in context.Profesionales
                                           where prof.Apellidoprof.Contains(cadena)
                                           select prof;

                            dgvBuscarProf.DataSource = busqueda;
                        }
                        if (cmbTipoBusqueda.SelectedItem == localidad)
                        {
                            var busqueda = from prof in context.Profesionales
                                           where prof.localidadprof.Contains(cadena)
                                           select prof;

                            dgvBuscarProf.DataSource = busqueda;
                        }
                        if (cmbTipoBusqueda.SelectedItem == establecimiento)
                        {
                            var busqueda = from prof in context.Profesionales
                                           where prof.Establecimiento.Contains(cadena)
                                           select prof;

                            dgvBuscarProf.DataSource = busqueda;
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }

        private void txbBusqueda_TextChanged(object sender, EventArgs e)
        {
            Buscar();
        }

        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                int profid = Convert.ToInt32(dgvBuscarProf.SelectedRows[0].Cells[0].Value);
                this.profselec = context.Profesionales.FirstOrDefault(c => c.idprofesional == profid);
                this.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

        private void cmbTipoBusqueda_TextChanged(object sender, EventArgs e)
        {
            txbBusqueda.Text = "";
            CargarGrilla();
            txbBusqueda.Focus();
        }
    }
}
